ES 查询

基础查询

主键查询

查询所有

hits 默认返回 10条数据。

分页查询

查询具体字段

查询结果默认按照 _score 倒序排列

自定义排序

自定义排序后 _score 字段的值就会变成 null

聚合查询

zi_ding_yi_name 是自定义的聚合查询名称,word_count 是聚合的字段。最后结果中,可以看到 word_count 值为 345 的 doc 有6个,34325 的有 4 个。

多组聚合

字段简单计算

高级查询

子条件查询: 特定字段查询所指特定值
复合条件查询: 以一定的逻辑组合子条件查询

子条件查询

Query context

在查询过程中,除了判断文档是否满足查询条件外, ES还会计算一个_score来标识匹配的程度,旨在判断目标文档
和查询条件匹配的有多好。

全文本查询

针对文本类数据,例如模糊匹配

完全匹配查询

多个字段模糊匹配查询

我们还可以进行DSL 语法查询,例如查询字段值包含 java 或者 武功。

在 DSL 查询中,我们也可以指定在哪些字段中进行查询。

字段级别查询

针对结构化数据,如数字,日期等。例如,查询 word_count 为 252 的值。

还可以进行范围查询

Filter context

在查询过程中,只判断该文档是否满足条件,只有 yes 或者 no。

复合条件查询

固定分数查询

constant_score 代表固定分数查询,boost 代表分数的值。

布尔查询

下图中,代表查询 author 包含詹小鱼或者 title 包含 java 的值。是一种或者的关系。

下图中的查询代表,查询 author 包含詹小鱼且 title 包含 java 的值。并且将查询结果进行过滤,过滤出 word_count 为 345 的数据。

还可以进行 must_not 查询,是一种非的关系。